#pragma once
#include <gfx/dx12/dx_common.h>

namespace primal
{
	namespace gfx
	{
		class GraphicsQueue : public ComPtr<ID3D12CommandQueue>
		{
		public:
			GraphicsQueue(ID3D12DeviceN* d, D3D12_COMMAND_LIST_TYPE t);
		private:
		};

		template<D3D12_COMMAND_LIST_TYPE T>
		class GraphicsQueueEx : public GraphicsQueue
		{
		public:
			GraphicsQueueEx(ID3D12DeviceN* d) :GraphicsQueue{ d,T }
			{}
		private:

		};

		using DirectQueue = GraphicsQueueEx<D3D12_COMMAND_LIST_TYPE_DIRECT>;
		using CopyQueue = GraphicsQueueEx<D3D12_COMMAND_LIST_TYPE_COPY>;

	}
}